WordStar:3.20/INSTALL.BAS
Strings [0x8-0x10] PINSTALL [0x19-0x51] Program description. This program installs various printers for WordStar 3.02 [0x5A-0x8A] Company name and date. MicroPro International Corporation, May 24, 1982 [0x93-0xBB] Revised for WordStar 3.2 - June 16, 1982 [0xC4-0xF0] Revised for WordStar 3.21 - August 12, 1982 [0xFD-0x12A] Revised for WordStar 3.24 - November 5, 1982 [0x137-0x167] Revised for NEC 3550 Printer - December 1, 1982 [0x1D3-0x211] "IBM Personal Computer Printer Installation, December 1, 1982" [0x227-0x253] "Name of file containing WordStar (WS.COM) " [0x275-0x27C] [[WordStar:3.20/WS.COM|WS.COM]] file. "WS.COM" [0x295-0x29A] ".COM" [0x2AB-0x2B0] ".com" [0x2C5-0x2CA] ".COM" [0x327-0x354] Put DATA pointer at beginning of ADDRESS data [0x377-0x3B1] Read ADDRESS data (and number of bytes per patch location) [0x42A-0x44F] Display menu and ask for printer type [0x472-0x4B8] Unconditional patches. These patches are applied to the WordStar file [0x4C1-0x506] no matter what printer is selected. The patches are supplied to this [0x50F-0x555] section of code in a block of data statements indicated by the restore [0x55E-0x5A7] command at the head of the routine. Format: Address,Byte,Number of bytes. [0x5D2-0x5FC] read address to patch,patch byte and count. [0x615-0x631] 0 indicates end of patch list [0x64B-0x65C] offset and counter [0x67E-0x6AB] ADDRESS TO PATCH (MUST COMPENSATE FOR ORG 100) [0x6D1-0x6DD] byte to patch [0x720-0x754] RESTORE DATA pointer to proper block of patch values [0x83B-0x84D] Get banner message [0x872-0x87C] Do patches [0x88D-0x8C9] (Don't forget that decimal 255 is subtracted from address to [0x8D2-0x8F5] get proper byte location in file!) [0x9A2-0x9D3] Does he also want to install the auto-baud patch? [0xA07-0xA18] Patch banner area [0xA83-0xA93] Return to system [0xAAE-0xAC5] "Installation complete" [0xAE3-0xAED] ***** Menu [0xB32-0xB3E] " " [0xB42-0xB4C] " ----- " [0xB67-0xB9F] " * Diablo 630's come in two different models" [0xBA6-0xBDD] " See Appendix B, IBM-PC Supplement in the" [0xBE4-0xC00] " User's Guide." [0xC0D-0xC3E] " Which printer do you want to install" [0xC60-0xCA5] Unconditional patch data. These bytes will be patched no matter what [0xCAE-0xCC2] printer is selected. [0xD6D-0xD82] PRINTER NAME DATA AREA [0xD91-0xDA6] "NEC 3550 Spinwriter" [0xDAD-0xDC3] "IBM Parallel Printer" [0xDCA-0xDE4] "NEC 5510/5520 Spinwriter" [0xDEB-0xE02] "Qume Sprint 5 Printer" [0xE09-0xE1C] "C.Itoh Starwriter" [0xE23-0xE42] "Diablo 1610/1620/630* Printer" [0xE49-0xE68] "Diablo 1640/1650/630* Printer" [0xE6F-0xE99] "Serial Backspacing Teletype-like Printer" [0xEA0-0xEC4] "Other Serial Teletype-like Printer" [0xED5-0xF12] ***** The following data statements contain pointers into the [0xF1B-0xF5E] WordStar ".COM" file. These addresses correspond to locations [0xF67-0xFAB] obtainable through DEBUG. Decimal value 255 is subtracted from [0xFB4-0xFF6] these addresses to determine the actual byte location in the [0xFFF-0x101A] WordStar ".COM" file. [0x1308-0x131A] end of data string [0x1339-0x1377] The following blocks of DATA statements contain the actual [0x1380-0x13C1] byte values patched into WordStar at the locations defined [0x13C7-0x13E7] in the DATA statements above [0x13F9-0x1438] Each block represents one kind of printer, and a RESTORE is [0x1441-0x147D] executed to put the DATA pointer at the beginning of the [0x1486-0x1498] correct block. [0x14A9-0x14B4] Banner Text [0x14BB-0x14D1] "IBM Parallel Printer" [0x1A20-0x1A36] "Backspacing Teletype" [0x1D8E-0x1DA4] "NEC 55xx Spinwriter " [0x2146-0x215C] "Qume Sprint 5 " [0x2506-0x251C] "C.Itoh Starwriter " [0x28AB-0x28C1] "Diablo 1610/1620/630" [0x2C32-0x2C48] "Diablo 1640/1650/630" [0x2FEF-0x3005] "Teletype " [0x317C-0x31A3] Communications card baud rate set patch. [0x31D8-0x3204] "Is the printer serial or parallel? (S/P) " [0x321E-0x3221] "s" [0x3229-0x322B] "S" [0x3242-0x3245] "P" [0x324D-0x324F] "p" [0x32ED-0x331B] "Do you want WordStar to always automatically" [0x3322-0x3343] "set the printer baud rate (y/n)" [0x3375-0x3378] "y" [0x3380-0x3382] "Y" [0x3399-0x339C] "n" [0x33A4-0x33A6] "N" [0x33AC-0x33C7] "(Use WSBAUD to set rate.)" [0x33E8-0x33F2] reset patch [0x3477-0x3497] Patch PRINIT back to NOP,NOP,RET [0x34DE-0x3512] get patch addresses and number of bytes per location [0x35BC-0x35DB] " BAUD RATE SELECTIONS [0x35E8-0x3603] " 1 300 BAUD [0x360A-0x3625] " 2 1200 BAUD [0x362C-0x3647] " 3 2400 BAUD [0x365E-0x368C] Set variable to appropriate baud rate hex code [0x369E-0x36CA] " Please enter selection (1/2/3): " [0x37B3-0x37D1] read patch data and do patches [0x393C-0x3971] data for addresses to be patched plus number of bytes [0x397A-0x3992] address of jump to patch [0x39A3-0x39DA] Address of PRINIT. Should be patched to jump to MORPAT. [0x39FA-0x3A25] address of code to perform baud rate change [0x3A36-0x3A6A] Address of MORPAT. This is where the baud code goes. [0x3A8B-0x3A9E] end of address data [0x3AC5-0x3ADB] code for jump to patch [0x3AEC-0x3B21] A CALL 2E0H (relative 16 bit) is patched into PRINIT. [0x3B47-0x3B5F] code for baud rate patch [0x3C05-0x3C1B] "NEC 3550 Spinwriter " [0x3DAB-0x3DD7] READ PATCH DATA FOR NEC 3550 AND DO PATCHES [0x3DE8-0x3E1C] GET PATCH ADDRESSES AND NUMBER OF BYTES PER LOCATION [0x3EB7-0x3ED5] read patch data and do patches [0x3FD8-0x400F] Address of LISEND. Should be patched to jump to MORPAT. [0x402F-0x405A] address of code to perform baud rate change [0x406B-0x409F] Address of MORPAT. This is where the 3550 code goes. [0x40C0-0x40D3] end of address data [0x40FA-0x4110] code for jump to patch [0x4121-0x4156] A CALL 2E0H (relative 16 bit) is patched into LISEND. [0x417C-0x4193] code for NEC 3550 PATCH Program in Action